home *** CD-ROM | disk | FTP | other *** search
- /*
- message2.c
- */
-
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
- #include <EGB.H>
- #include <MOS.H>
- #include <FMCfrb.h>
- #include <kkstr2.h>
- #include <Normlib.h>
- #include <okome.h>
-
- extern char work[];
-
- #define MEY1 140
- #define MEX4 280
- #define MEX1 (320-MEX4/2)
- #define MEX3 (MEX4-1)
- #define MEY3 (MEY4-1)
- #define MEX2 (MEX1+MEX3)
- #define MEY2 (MEY1+MEY3)
-
- /*
- m:確認モード
- 1: 確認
- 2: 実行 取消
- */
- /* message2(int n, char *mess, ..., int m ) */
- int message2(int n, ... )
- {
- int mb, mx, my, p, m, MEY4;
- unsigned int kb, en;
- char *mess;
- va_list ap;
- va_start(ap, n);
- MEY4 = n*18+50;
- p = EGB_getWritePage( 0, 0 );
- EGB_writePage( work, 0 );
- MOS_disp(0);
- OKM_gth( MEX1,MEY1, MEX2,MEY2, 1 );
- boxbf(MEX1,MEY1,MEX2,MEY2,8,15);
- boxb(MEX1+2,MEY1+2,MEX2-2,MEY2-2,8);
- for (mx = 0; mx < n; mx++) {
- mess = va_arg(ap, char *);
- font12((MEX1+MEX2)/2-strlen(mess)*3, MEY1+mx*18+26, mess, 8 );
- }
- m = va_arg(ap, int);
- va_end(ap);
- for ( mb = 2-m; mb<2; mb++ ) {
- boxbf(MEX2-130+60*mb,MEY2-29,MEX2-90+mb*60,MEY2-8,8,15);
- }
- if ( m==1 ) {
- font12(MEX2- 65,MEY2-13,"確 認",8);
- } else {
- font12(MEX2-125,MEY2-13,"実 行",8);
- font12(MEX2- 65,MEY2-13,"取 消",8);
- }
- MOS_disp(1);
- do {
- MOS_rdpos(&mb,&mx,&my);
- do {
- kb = KYB_read(1,&en);
- } while (kb==0xffff && KAN_inpchk()==KAN_MISET);
- if (mb && my>=MEY2-29 && my<=MEY2-8) {
- if ( mx>=MEX2-70 && mx<=MEX2-20 ) {
- m-= 1;
- break;
- }
- if ( mx>=MEX2-130 && mx<=MEX2-80 && m == 2) {
- m = 0;
- break;
- }
- }
- /* if (mb && (mx>=MEX1 && mx<=MEX2 && my>=MEY1 && my<=MEY2)==0) {
- m = (mb==1) ? 0 : (m-1) ;
- break;
- } */
- if ( kb == 0x0D || kb==0x8012 )
- {
- m = 0;
- break;
- }
- if (m == 2 && ( kb == 0x1B || kb == 0x8011 ) )
- {
- m = 1;
- break;
- }
- } while (1);
- MOS_disp(0);
- OKM_gth( MEX1,MEY1, MEX2,MEY2, 0 );
- MOS_disp(1);
- EGB_writePage( work, p );
- mbout(&mb,&mx,&my);
- return (m);
- }
-